查看原文
其他

面向跨语言的操作系统日志异常检测技术研究与实现(下)

余冬清 侯潇为 中国保密协会科学技术分会 2022-10-02

导  语


      分析、挖掘系统运行时产生的日志,理解系统行为是对系统运行状态进行诊断的重要手段,日志文本具有半结构化特征,日志中既包含程序员用自然语言编写的打印输出语句,又包含了机器语言生成的运行时变量参数等信息。由于国产操作系统日志中包含中英文两种语言,因此,抽取的日志模板中也同样包含两种语言,使用基于自然语言处理的方法获取日志模板的嵌入表示时,现有的N-gram、TF-IDF等语义表征方法无法获得将两种不同语言嵌入到统一的低维向量空间,我们使用LaBSE预训练模型实现多语言句子嵌入。


一、日志解析

日志解析的目标是对日志进行去参数化操作,自动分离出原始日志消息的常量部分,去除变量部分,并进一步将每个日志消息与特定事件类型(通常由其常量部分表示)匹配。

1.1日志特点分析

日志消息包含时间戳、主机名、组件名、进程PID以及具体的日志信息五个部分组成。在国产操作系统中,日志分为8个级别,优先级从高到低分别是Emerge、Alert、Critical、Error、Warning、Notice、Info、Debug,优先级越高的日志信息对于日志异常检测越重要。通过对日志进行总结分析,我们有以下发现:

1、日志还有明显的时序特征。时序数据带有记录数据发生的时间的时间戳,随着时间的推移不断产生新的日志数据,已经生成的数据不会再进行更新;另外,后产生的日志数据只与它之前的日志有关系,而与它之后产生的日志数据没有关系。

2、日志中出现的词的字数统计分布极其不平衡。操作系统的源程序中的打印语句定义了日志词汇表中的单词,也就是通常所说的日志模板。这些词的数量并不多,但它们经常出现在日志中。同时,不同于模板中的单词,日志的变量部分对应的单词在统计上的分布是极端的,因为一些参数经常以相同的值重复,而另一些参数则根据系统的状态而变化。许多日志分析算法和频繁项聚类算法就是基于日志数据中单词数量的高度不均衡分布特点进行挖掘分析的。但是,这种单词频率的分布不均影响了传统日志文本挖掘技术研究的效果[1]。

3、相同的日志记录可以冗余显示。一个日志模板代表系统或应用中的一类事件,管理员可以通过观察发生的事件来判断系统或应用的状态用于管理。有些事件会反复出现,在正常情况下相同的日志可以重复多次。因此,日志消息的冗余特征是它与一般文本数据有着显著差异的地方,何品嘉等人总结的几种日志异常检测算法都利用了这一特性,根据三种不同的窗口定义方法,得到以相同日志的出现次数为特征的特征矩阵[2]。

4、日志文本是一种弱语法结构的文本。不同于自然语言中的句子,日志文本通常较为简洁且抽象,类似于“短句”。每条日志打印的字段都是操作系统预先定义的,主要用于记录应用程序或系统的状态和行为,并且不同应用程序和系统打印语句的定义各有不同。虽然这些字段不像自然语言那样结构化,但是各个字段与参数之间仍然存在着重要的上下文逻辑和语义关系。一般来说,精通日志领域知识的人可以更好地理解日志文本及其上下文代表的含义。

5、相同源的日志数据有相同的结构,不同源的日志数据有不同的结构。日志记录是由预先定义的日志模板生成,但用户事先并不知道有哪些日志模板。通常系统使用打印语句从源代码生成日志记录,因此具有清晰的结构,并且相同源的日志记录结构相同,不同源的日志数据结构不同,其中的所有变量都由当前系 统状态的参数确定。大多数现有的日志数据聚类算法隐式地或明确地利用了日 志结构的这一特点。

1.2日志预处理

对于日志数据来说,在数据预处理阶段需要对日志数据进行清洗,然后将非结构化的日志处理成结构化信息。

经过上述处理,原始日志按照[序号|年|月|日|时刻|主机名称|组件名|日志消息]的格式,分别被划分为不同的域。解析的结构化日志如表1所示,表中不展示日期相关的域。

表1 解析后的结构化日志

1.3日志模版抽取

该节首先对日志消息进行分词,记录该条日志消息长度,即日志消息中包含的token的数量,然后在解析树中搜索该条日志,如果在解析树中未找到该日志匹配的结点,则将该节点加入到前缀树中,如果找到了与该日志匹配的结点,则得到了该条日志消息的模板,即该结点代表的日志模板。

此外对解析树进行搜索的过程为:首先获取该日志消息的长度 𝑠𝑒𝑞𝐿𝑒𝑛,如果树的结点中不存在该长度代表的结点,则返回空值;否则,找到该长度对应的子树,设置当前遍历深度𝑐𝑢𝑟𝑟𝑒𝑛𝑡𝐷𝑒𝑝𝑡h为1,对日志消息中的token开始遍历,如果该日志消息中的token与子树结点中的token是一致的,则继续向下对该子树的结点进行遍历,同时将token作为该日志消息的模板树,遍历完成后,返回该日志消息完成的模板树。

向解析树中添加树节点的步骤为:如果解析树中未曾出现过长度为seqLen的日志消息,则将其设置为解析树的结点,否则的话取将日志长度设置为该日志消息的第一层结点。比较token是否在日志模板集合中,如果token在日志模板集合logClust找不到合适的logTemplate,并且该位置已经有了一个<∗>标记,那么就不更新该位置的模板的token,反之,将该位置的模板token更新为<∗>。依次操作将日志消息中的所有token都更新到解析树中。

部分日志模板如表2所示。本节所述算法共解析出1118条模板,其中包含1054个英文模板以及54个中文模板。

表2 部分日志模版

二、基于LaBSE的跨语言日志语义表征方法

LaBSE(Language-agnostic BERT Sentence Embedding)模型[3]是谷歌提出的一种跨语言的预训练模型,可以得到多语言文本句子级的嵌入表示。LaBSE将现有的最先进的多语言文本的句子级嵌入表示方法与掩码语言模型(MLM)和翻译语言模型(TLM)预训练编码器相结合,由两个共享参数的多层Transformer编码器组成,使用附加边际 Softmax(additive margin softmax, AM_Softmax)计算loss,学习句子的嵌入表示。

该模型架构如图一所示,源输入文本和目的输入文本公用一个基于预训练模型BERT[4]的编码器分别编码,使用共享参数但分别独立的两多层个Transformer网络进行训练,使用AM_Softmax计算loss。最后一层[CLS]即为Source Text和Target Text的嵌入表示,通过计算两者之间的余弦相似度对Bert编码器生成的句子级嵌入表示进行评分。

图1 LaBSE模型架构

LaBSE模型在训练阶段,使用两种语料库对模型进行训练,一种是只包含单语数据的,数据来源是CommonCrawl和维基百科,使用句子质量分类器过滤得到 170亿个单语句子;另外一种语料库是双语语料库,包含英语、汉语、俄语、日语、中文、法语、德语、葡萄牙语、荷兰语等 109 种语言,利用Uszkoreit等 人提出的双文本挖掘系统从网页中挖掘的数据,使用对比数据选择(Contrastive Data Selection,CDS)模型进行过滤,得到了60亿个翻译的句子对[5]。

预训练完成之后,LaBSE模型学到了某个词在特定的上下文中语义表征。因此,本研究把跨语言的日志模板输入到预训练模型中学习输入句子的上下文语义相关的嵌入表示。

三、模版修正

本文在上节中完成了跨语言日志的语义嵌入表示工作后,可以对两个模板的语义相似性进行度量,进而对日志模板集进行修正。语义相似度用于衡量日志文本表达的语义信息是否相似。

对日志模板进行相似度比较的结果如图2二所示:第一列和第二列分别为两个模板的模板编号,第三列为余弦相似度,第四列和第五列为模板的具体内容。

图2模板相似性比较

本文选取相似度在0.9以上的日志模板进行模板修正工作,主要针对以下两种情况进行修正:

1、中文模板和英文模板的语义相同,如“Loading <*>”和“正在加载中...... ”,计算两者相似度𝑆𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 = 0.99,对于这种情况,直接将二者合并,利用英文模板的语义向量代替中文模板。

2、中文模板在该模板集中没有与之相似的英文模板,那么直接使用中文的嵌入表示作为该模板的语义表征。

本节在完成模板修正任务之后,最终得到了900个英文模板,16个中文模板。

四、本章小结

本篇介绍了本研究是如何对跨语言日志文本进行语义表征的,介绍了针对国产操作系统日志的日志解析方法,首先去除原始日志中的变量部分,只保留常量部分,将日志解析为日志模板;对于包含中英文两种语言的模板集合,利用LaBSE模型将中文和英文映射到同一个向量空间中,学习跨语言日志文本在该向量空间中的嵌入表示。最后基于语义表征的结果,通过对日志模板进行相似性度量修正模板集合。


参考文献


[1] 杨瑞朋.日志异常检测与诊断关键技术研究[D/OL].战略支援部队信息工程大学,2020.DOI:10.27188/d.cnki.gzjxu.2020.000058.

[2] He P, Zhu J, He S, et al. Towards automated log parsing for large-scale log data analysis [J].IEEE Transactions on Dependable and Secure Computing, 2017, 15(6): 931-944.

[3] Feng F, Yang Y, Cer D, et al. Language-agnostic bert sentence embedding [EB/OL]. 2020.arXivpreprintarXiv:2007.01852.

[4] Devlin J, Chang M, Lee K, et al. BERT: pre-training of deep bidirectional transformers for language understanding [C/OL]//Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, June 2-7, 2019, Volume 1 (Long and Short Papers). Association for Computational Linguistics, 2019: 4171-4186. https://doi.org/10.18653/ v1/n19-1423.

[5] Uszkoreit J, Ponte J, Popat A, et al. Large scale parallel document mining for machine trans- lation [J]. 2010.


中国保密协会

科学技术分会

长按扫码关注我们

作者:余冬清 侯潇为

责编:丁    昶


2021年精彩文章TOP5回顾


碎纸恢复还原技术对载体销毁的重要启示

身边的地理信息安全与保密
美国对华科技竞争政策性建议汇总
6G之卫星通信
浅谈计算机键盘电磁泄漏防护


近期精彩文章回顾


浅谈数据安全治理与隐私计算

面向跨语言的操作系统日志异常检测技术研究与实现(中)
面向跨语言的操作系统日志异常检测技术研究与实现(上)
浅谈智能手机取证——技术篇
ATT&CK和CALDERA简介

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存